<!doctype html>
<body>
  <script src=/resources/testharness.js></script>
  <script src=/resources/testharnessreport.js></script>
  <script src=/common/utils.js></script>
  <script src=/fenced-frame/resources/utils.js></script>
  <script src=/shared-storage/resources/util.js></script>
  <script src=/shared-storage/resources/util.sub.js></script>
  <script>
    const sameOrigin = new URL("", location.href).origin;
    const crossOrigin = 'https://{{domains[www]}}:{{ports[https][0]}}';

    promise_test(async () => {
      await navigateSharedStorageIframe({
        hasSharedStorageWritableAttribute: true,
        rawWriteHeader: "set;key=a;value=b",
        isSameOrigin: true,
        expectSharedStorageWritableHeader: true,
      });
      await verifyKeyValueForOrigin('a', 'b', sameOrigin);
      await deleteKeyForOrigin('a', sameOrigin);
    }, 'test <iframe sharedstoragewritable src=[url]></iframe> via JS for'
       + ' same origin iframe');

    promise_test(async () => {
      await navigateSharedStorageIframe({
        hasSharedStorageWritableAttribute: true,
        rawWriteHeader: "set;key=c;value=d",
        isSameOrigin: false,
        expectSharedStorageWritableHeader: true,
      });
      await verifyKeyValueForOrigin('c', 'd', crossOrigin);
      await deleteKeyForOrigin('c', crossOrigin);
    }, 'test <iframe sharedstoragewritable src=[url]></iframe> via JS for'
       + ' cross origin iframe');
  </script>
</body>
